package org.dromara.system.domain.bo;

import org.dromara.system.domain.SysArea;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.util.List;

/**
 * 系统管理-区域配置业务对象 sys_area
 *
 * @author LionLi
 * @date 2024-03-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysArea.class, reverseConvertGenerate = false)
public class SysAreaBo extends BaseEntity {

    /**
     * 区域id
     */
    @NotNull(message = "区域id不能为空", groups = { EditGroup.class })
    private Long areaId;

    /**
     * 区域编号（自动生成 8位字符串，批量导入对外暴露）
     */
    private String areaCode;

    /**
     * 父区域id
     */
    private Long parentId;

    /**
     * 区域名称
     */
    @NotBlank(message = "区域名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String areaName;

    /**
     * 类型（字典表：null 顶级系统无法删除，REGION 大区，BRAND 品牌，ORDINAR 区域，PROVINCE 省，CITY 城市，COUNTY 区县，BUSINESS_DEP 事业部，SUBSIDIARY 分子公司，REGION 大区）
     */
//    @NotBlank(message = "类型（字典表：null 顶级系统无法删除，REGION 大区，BRAND 品牌，ORDINAR 区域，PROVINCE 省，CITY 城市，COUNTY 区县，BUSINESS_DEP 事业部，SUBSIDIARY 分子公司，REGION 大区）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String areaType;

    /**
     * 祖级列表
     */
    private String ancestors;

    /**
     * 显示顺序
     */
    private Long orderNum;

    /**
     * 是否有设备
     */
    private Boolean isDevice;

    /**
     * 门店状态
     */
    private String storeStatus;


    /**
     * 门店状态，非运行中的状态
     */
    private String statusNot;


    private List<Long> areaIds;

    private Long userId;


}
